main() {
  // 购物车数据
  List carts = [
    {"count": 2, "price": 10.0, "selected": true},
    {"count": 1, "price": 30.0, "selected": true},
    {"count": 5, "price": 20.0, "selected": true}
  ];

  // 调用函数，判断是否全选
  bool isAll = isAllSelected(carts);
  print('是否全选：$isAll');
}

// 计算全选的函数
bool isAllSelected(List carts) {
  // 1. 现成的 every 方法
  // return carts.every((item) => item['selected']);

  // 2. for in 遍历购物车数据，判断是否全选
  // bool isAll = true;
  // for (var item in carts) {
  //   if (!item['selected']) {
  //     isAll = false;
  //     break;  // 只要有一个商品没有选中，就不是全选，中断循环
  //   }
  // }
  // return isAll;

  // 3. for 循环遍历购物车数据，判断是否全选
  // bool isAll = true;
  // for (int i = 0; i < carts.length; i++) {
  //   if (!carts[i]['selected']) {
  //     isAll = false;
  //     break; // 只要有一个商品没有选中，就不是全选，中断循环
  //   }
  // }
  // return isAll;

  // 4. 优化代码，使用 return 直接退出函数
  for (var item in carts) {
    // 有一项没有选中，就直接退出
    if (!item['selected']) {
      return false; // return 直接退出函数，循环也就被中断了
    }
  }
  return true; // 如果循环都没被中断，那么就是全选 true
}
